package com.wh.wisdomsite.xbox.ba.entity;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 菜单实体
 *
 * @version V1.0
 * @Package: com.wh.wisdomsite.xbox.us.entity
 * @author: 丁奕
 * @date: 2018-08-03 14:08
 * @Copyright 公司版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2016
 **/
@TableName("ba_menu")
public class Menu extends Model<Menu> {

    /**
     * PK, 菜单ID
     */
    @TableId(type = IdType.UUID)
    private String meId;

    /**
     * 父级编号
     */
    @TableField("parentId")
    private String parentId;

    /**
     * 名称
     */
    @TableField("name")
    private String name;

    /**
     * 菜单类型
     * 1：页面
     * 2：按钮
     */
    @TableField("meType")
    private String meType;

    /**
     * 链接
     */
    @TableField("href")
    private String href;

    /**
     * 目标
     */
    @TableField("target")
    private String target;

    /**
     * 菜单图标
     */
    @TableField("iconCls")
    private String iconCls;

    /**
     * 菜单图片
     */
    @TableField("meBgImg")
    private String meBgImg;

    /**
     * 是否在菜单中显示
     * 1:显示,2:不显示
     */
    @TableField("isShow")
    private String isShow;

    /**
     * 权限标识
     */
    @TableField("permission")
    private String permission;

    /**
     * 排序
     */
    @TableField("sort")
    private Integer sort;

    /**
     * 创建者
     */
    @TableField("createBy")
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField("createDate")
    private Date createDate;




    /**
     * 更新者
     */
    @TableField("updateBy")
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @TableField("updateDate")
    private Date updateDate;

    /**
     * 备注信息
     */
    @TableField("remark")
    private String remark;

    /**
     * 数据状态
     * 1:正常 2:已删除
     */
    @TableField("dataState")
    private String dataState;

    /**
     * 子菜单
     */
    @TableField(exist = false)
    private List<Menu> children;


    /**
     *
     */
    @TableField(exist = false)
    private String createDateFormat;


    public String getMeId() {
        return meId;
    }

    public void setMeId(String meId) {
        this.meId = meId;
    }

    public String getParentId() {
        return parentId;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMeType() {
        return meType;
    }

    public void setMeType(String meType) {
        this.meType = meType;
    }

    public String getHref() {
        return href;
    }

    public void setHref(String href) {
        this.href = href;
    }

    public String getTarget() {
        return target;
    }

    public void setTarget(String target) {
        this.target = target;
    }

    public String getIconCls() {
        return iconCls;
    }

    public void setIconCls(String iconCls) {
        this.iconCls = iconCls;
    }

    public String getMeBgImg() {
        return meBgImg;
    }

    public void setMeBgImg(String meBgImg) {
        this.meBgImg = meBgImg;
    }

    public String getIsShow() {
        return isShow;
    }

    public void setIsShow(String isShow) {
        this.isShow = isShow;
    }

    public String getPermission() {
        return permission;
    }

    public void setPermission(String permission) {
        this.permission = permission;
    }

    public Integer getSort() {
        return sort;
    }

    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getDataState() {
        return dataState;
    }

    public void setDataState(String dataState) {
        this.dataState = dataState;
    }

    public List<Menu> getChildren() {
        return children;
    }

    public void setChildren(List<Menu> children) {
        this.children = children;
    }

    public String getCreateDateFormat() {
        return createDateFormat;
    }

    public void setCreateDateFormat(String createDateFormat) {
        this.createDateFormat = createDateFormat;
    }

    @Override
    protected Serializable pkVal() {
        return this.meId;
    }
}
